package com.cskaoyan.javase.oop2._1extends._10final._3variable._0introduction;
/**
 * final修饰变量,表示最终的变量,就是一个常量
 * 要学习final常量,必须明确以下三点:
 *      1.常量的分类:
 *          a.字面值常量,比如代码中直接写的1,2,3,0.1,"hello"等
 *          b.自定义常量,指的就是final修饰的变量
 *          "_"这个字符虽然可以在标识符命名时用,但是不推荐
 *          但是在常量的命名中,推荐使用"_"
 *          自定义常量的命名: 单词字母全部大写,每个单词之间"_"隔开
 *          比如: MAX_VALUE
 *          注: 在实际开发中,并不是所有的自定义常量都需要以上命名
 *              一般来说,final修饰静态成员变量,需要按照以上方式命名
 *              其它的不建议使用
 *
 *      2.final修饰变量时,可以修饰成员变量,局部变量,静态成员变量
 *          仅表示它们的值不再改变,成为一个常量
 *          但是不会改变它们的使用方式,生命周期,存储位置等
 *          比如final修饰成员变量,那么就是一个成员常量
 *          它仍需创建对象,仍然属于对象,仍然用对象名点访问
 *
 *
 *      3.final修饰变量时,可以修饰基本数据类型变量,也可以修饰引用数据类型变量
 *          修饰基本数据类型变量时,就表示该变量的取值不改变
 *          修饰引用数据类型变量时,修饰的是引用,而不是对象
 *              修饰引用表示引用是一个常量
 *              引用中存储的地址不再发生改变
 *              --> 意味着该引用不能指向新的对象了
 *          但是该不可变引用所指向的对象,仍然是可以改变状态的,对象中元素的取值
 *          是可以改变的.
 *
 *
 *
 *
 * @since 11:29
 * @author wuguidong@cskaoyan.onaliyun.com
 */
public class Demo {
    public static void main(String[] args) {

    }
}
